-
Notifications
You must be signed in to change notification settings - Fork 15.1k
[Clang][LoongArch] Add support for UEFI target #155598
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
@llvm/pr-subscribers-clang-driver Author: None (leecheechen) ChangesThis patch adds basic UEFI target support for loongarch64. It enable Clang to recognize and handle Full diff: https://github.com/llvm/llvm-project/pull/155598.diff 7 Files Affected:
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index e3f9760ac7ce3..ea854e42e4396 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -760,6 +760,9 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
case llvm::Triple::OpenBSD:
return std::make_unique<OpenBSDTargetInfo<LoongArch64TargetInfo>>(Triple,
Opts);
+ case llvm::Triple::UEFI:
+ return std::make_unique<UEFITargetInfo<LoongArch64TargetInfo>>(Triple,
+ Opts);
default:
return std::make_unique<LoongArch64TargetInfo>(Triple, Opts);
}
diff --git a/clang/lib/Basic/Targets/LoongArch.h b/clang/lib/Basic/Targets/LoongArch.h
index 88dc433924d6c..ae0838a58dd63 100644
--- a/clang/lib/Basic/Targets/LoongArch.h
+++ b/clang/lib/Basic/Targets/LoongArch.h
@@ -13,6 +13,7 @@
#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_LOONGARCH_H
#define LLVM_CLANG_LIB_BASIC_TARGETS_LOONGARCH_H
+#include "OSTargets.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/TargetOptions.h"
#include "llvm/Support/Compiler.h"
@@ -159,6 +160,8 @@ class LLVM_LIBRARY_VISIBILITY LoongArch64TargetInfo
IntMaxType = Int64Type = SignedLong;
HasUnalignedAccess = true;
resetDataLayout("e-m:e-p:64:64-i64:64-i128:128-n32:64-S128");
+ if (Triple.isUEFI())
+ resetDataLayout("e-m:w-p:64:64-i64:64-i128:128-n32:64-S128");
// TODO: select appropriate ABI.
setABI("lp64d");
}
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index d682ffc832c83..9faeb33ba10b6 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -698,8 +698,10 @@ static llvm::Triple computeTargetTriple(const Driver &D,
}
}
- // Currently the only architecture supported by *-uefi triples are x86_64.
- if (Target.isUEFI() && Target.getArch() != llvm::Triple::x86_64)
+ // Currently the only architectures supported by *-uefi triples are
+ // x86_64 and loongarch64.
+ if (Target.isUEFI() && Target.getArch() != llvm::Triple::x86_64 &&
+ Target.getArch() != llvm::Triple::loongarch64)
D.Diag(diag::err_target_unknown_triple) << Target.str();
// The `-maix[32|64]` flags are only valid for AIX targets.
diff --git a/clang/test/CodeGen/LoongArch/uefi-data-layout.c b/clang/test/CodeGen/LoongArch/uefi-data-layout.c
new file mode 100644
index 0000000000000..8c3e0b00d9d05
--- /dev/null
+++ b/clang/test/CodeGen/LoongArch/uefi-data-layout.c
@@ -0,0 +1,3 @@
+// RUN: %clang -target loongarch64-unknown-uefi -S -emit-llvm -o - %s | \
+// RUN: FileCheck --check-prefix=LA64_UEFI %s
+// LA64_UEFI: target datalayout = "e-m:w-p:64:64-i64:64-i128:128-n32:64-S128"
diff --git a/clang/test/Driver/uefi-constructed-args.c b/clang/test/Driver/uefi-constructed-args.c
index 49ede47a8953e..c9f3cbaf105d3 100644
--- a/clang/test/Driver/uefi-constructed-args.c
+++ b/clang/test/Driver/uefi-constructed-args.c
@@ -12,3 +12,18 @@
// CHECK-SAME: "-entry:EfiMain"
// CHECK-SAME: "-tsaware:no"
// CHECK-SAME: "-debug"
+
+// RUN: %clang -### --target=loongarch64-unknown-uefi -g -- %s 2>&1 \
+// RUN: | FileCheck -check-prefixes=LA64 %s
+// RUN: %clang_cl -### --target=loongarch64-unknown-uefi -g -- %s 2>&1 \
+// RUN: | FileCheck -check-prefixes=LA64 %s
+// LA64: "-cc1"
+// LA64-SAME: "-triple" "loongarch64-unknown-uefi"
+// LA64-SAME: "-mrelocation-model" "pic" "-pic-level" "2"
+// LA64-SAME: "-mframe-pointer=all"
+// LA64-SAME: "-fms-extensions"
+// LA64-NEXT: "-nologo"
+// LA64-SAME: "-subsystem:efi_application"
+// LA64-SAME: "-entry:EfiMain"
+// LA64-SAME: "-tsaware:no"
+// LA64-SAME: "-debug"
diff --git a/clang/test/Driver/unsupported-target-arch.c b/clang/test/Driver/unsupported-target-arch.c
index 426f646db50b0..2f2fa4f8244df 100644
--- a/clang/test/Driver/unsupported-target-arch.c
+++ b/clang/test/Driver/unsupported-target-arch.c
@@ -77,3 +77,9 @@
// RUN: not %clang_cl --target=x86-unknown-uefi -o %t.o %s 2> %t.err
// RUN: FileCheck --input-file=%t.err -check-prefixes=CHECK-x86 %s
// CHECK-x86: error: unknown target triple 'x86-unknown-uefi'{{$}}
+
+// RUN: not %clang --target=loongarch-unknown-uefi -o %t.o %s 2> %t.err
+// RUN: FileCheck --input-file=%t.err -check-prefixes=CHECK-la %s
+// RUN: not %clang_cl --target=loongarch-unknown-uefi -o %t.o %s 2> %t.err
+// RUN: FileCheck --input-file=%t.err -check-prefixes=CHECK-la %s
+// CHECK-la: error: unknown target triple 'loongarch-unknown-uefi'{{$}}
diff --git a/clang/unittests/Driver/ToolChainTest.cpp b/clang/unittests/Driver/ToolChainTest.cpp
index 4fa27297cfd87..c61a7d69d2dbc 100644
--- a/clang/unittests/Driver/ToolChainTest.cpp
+++ b/clang/unittests/Driver/ToolChainTest.cpp
@@ -594,6 +594,19 @@ TEST(ToolChainTest, UEFICallingConventionTest) {
EXPECT_EQ(compiler.getTarget().getCallingConvKind(true),
TargetInfo::CallingConvKind::CCK_MicrosoftWin64);
+
+ TrStr = "loongarch64-unknown-uefi";
+ Tr.setOS(llvm::Triple::OSType::UEFI);
+ Tr.setVendor(llvm::Triple::VendorType::UnknownVendor);
+ Tr.setEnvironment(llvm::Triple::EnvironmentType::UnknownEnvironment);
+ Tr.setArch(llvm::Triple::ArchType::loongarch64);
+
+ compiler.getTargetOpts().Triple = Tr.getTriple();
+ compiler.setTarget(clang::TargetInfo::CreateTargetInfo(
+ compiler.getDiagnostics(), compiler.getTargetOpts()));
+
+ EXPECT_EQ(compiler.getTarget().getCallingConvKind(true),
+ TargetInfo::CallingConvKind::CCK_Default);
}
TEST(ToolChainTest, UEFIDefaultDebugFormatTest) {
|
|
@llvm/pr-subscribers-backend-loongarch Author: None (leecheechen) ChangesThis patch adds basic UEFI target support for loongarch64. It enable Clang to recognize and handle Full diff: https://github.com/llvm/llvm-project/pull/155598.diff 7 Files Affected:
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index e3f9760ac7ce3..ea854e42e4396 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -760,6 +760,9 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
case llvm::Triple::OpenBSD:
return std::make_unique<OpenBSDTargetInfo<LoongArch64TargetInfo>>(Triple,
Opts);
+ case llvm::Triple::UEFI:
+ return std::make_unique<UEFITargetInfo<LoongArch64TargetInfo>>(Triple,
+ Opts);
default:
return std::make_unique<LoongArch64TargetInfo>(Triple, Opts);
}
diff --git a/clang/lib/Basic/Targets/LoongArch.h b/clang/lib/Basic/Targets/LoongArch.h
index 88dc433924d6c..ae0838a58dd63 100644
--- a/clang/lib/Basic/Targets/LoongArch.h
+++ b/clang/lib/Basic/Targets/LoongArch.h
@@ -13,6 +13,7 @@
#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_LOONGARCH_H
#define LLVM_CLANG_LIB_BASIC_TARGETS_LOONGARCH_H
+#include "OSTargets.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/TargetOptions.h"
#include "llvm/Support/Compiler.h"
@@ -159,6 +160,8 @@ class LLVM_LIBRARY_VISIBILITY LoongArch64TargetInfo
IntMaxType = Int64Type = SignedLong;
HasUnalignedAccess = true;
resetDataLayout("e-m:e-p:64:64-i64:64-i128:128-n32:64-S128");
+ if (Triple.isUEFI())
+ resetDataLayout("e-m:w-p:64:64-i64:64-i128:128-n32:64-S128");
// TODO: select appropriate ABI.
setABI("lp64d");
}
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index d682ffc832c83..9faeb33ba10b6 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -698,8 +698,10 @@ static llvm::Triple computeTargetTriple(const Driver &D,
}
}
- // Currently the only architecture supported by *-uefi triples are x86_64.
- if (Target.isUEFI() && Target.getArch() != llvm::Triple::x86_64)
+ // Currently the only architectures supported by *-uefi triples are
+ // x86_64 and loongarch64.
+ if (Target.isUEFI() && Target.getArch() != llvm::Triple::x86_64 &&
+ Target.getArch() != llvm::Triple::loongarch64)
D.Diag(diag::err_target_unknown_triple) << Target.str();
// The `-maix[32|64]` flags are only valid for AIX targets.
diff --git a/clang/test/CodeGen/LoongArch/uefi-data-layout.c b/clang/test/CodeGen/LoongArch/uefi-data-layout.c
new file mode 100644
index 0000000000000..8c3e0b00d9d05
--- /dev/null
+++ b/clang/test/CodeGen/LoongArch/uefi-data-layout.c
@@ -0,0 +1,3 @@
+// RUN: %clang -target loongarch64-unknown-uefi -S -emit-llvm -o - %s | \
+// RUN: FileCheck --check-prefix=LA64_UEFI %s
+// LA64_UEFI: target datalayout = "e-m:w-p:64:64-i64:64-i128:128-n32:64-S128"
diff --git a/clang/test/Driver/uefi-constructed-args.c b/clang/test/Driver/uefi-constructed-args.c
index 49ede47a8953e..c9f3cbaf105d3 100644
--- a/clang/test/Driver/uefi-constructed-args.c
+++ b/clang/test/Driver/uefi-constructed-args.c
@@ -12,3 +12,18 @@
// CHECK-SAME: "-entry:EfiMain"
// CHECK-SAME: "-tsaware:no"
// CHECK-SAME: "-debug"
+
+// RUN: %clang -### --target=loongarch64-unknown-uefi -g -- %s 2>&1 \
+// RUN: | FileCheck -check-prefixes=LA64 %s
+// RUN: %clang_cl -### --target=loongarch64-unknown-uefi -g -- %s 2>&1 \
+// RUN: | FileCheck -check-prefixes=LA64 %s
+// LA64: "-cc1"
+// LA64-SAME: "-triple" "loongarch64-unknown-uefi"
+// LA64-SAME: "-mrelocation-model" "pic" "-pic-level" "2"
+// LA64-SAME: "-mframe-pointer=all"
+// LA64-SAME: "-fms-extensions"
+// LA64-NEXT: "-nologo"
+// LA64-SAME: "-subsystem:efi_application"
+// LA64-SAME: "-entry:EfiMain"
+// LA64-SAME: "-tsaware:no"
+// LA64-SAME: "-debug"
diff --git a/clang/test/Driver/unsupported-target-arch.c b/clang/test/Driver/unsupported-target-arch.c
index 426f646db50b0..2f2fa4f8244df 100644
--- a/clang/test/Driver/unsupported-target-arch.c
+++ b/clang/test/Driver/unsupported-target-arch.c
@@ -77,3 +77,9 @@
// RUN: not %clang_cl --target=x86-unknown-uefi -o %t.o %s 2> %t.err
// RUN: FileCheck --input-file=%t.err -check-prefixes=CHECK-x86 %s
// CHECK-x86: error: unknown target triple 'x86-unknown-uefi'{{$}}
+
+// RUN: not %clang --target=loongarch-unknown-uefi -o %t.o %s 2> %t.err
+// RUN: FileCheck --input-file=%t.err -check-prefixes=CHECK-la %s
+// RUN: not %clang_cl --target=loongarch-unknown-uefi -o %t.o %s 2> %t.err
+// RUN: FileCheck --input-file=%t.err -check-prefixes=CHECK-la %s
+// CHECK-la: error: unknown target triple 'loongarch-unknown-uefi'{{$}}
diff --git a/clang/unittests/Driver/ToolChainTest.cpp b/clang/unittests/Driver/ToolChainTest.cpp
index 4fa27297cfd87..c61a7d69d2dbc 100644
--- a/clang/unittests/Driver/ToolChainTest.cpp
+++ b/clang/unittests/Driver/ToolChainTest.cpp
@@ -594,6 +594,19 @@ TEST(ToolChainTest, UEFICallingConventionTest) {
EXPECT_EQ(compiler.getTarget().getCallingConvKind(true),
TargetInfo::CallingConvKind::CCK_MicrosoftWin64);
+
+ TrStr = "loongarch64-unknown-uefi";
+ Tr.setOS(llvm::Triple::OSType::UEFI);
+ Tr.setVendor(llvm::Triple::VendorType::UnknownVendor);
+ Tr.setEnvironment(llvm::Triple::EnvironmentType::UnknownEnvironment);
+ Tr.setArch(llvm::Triple::ArchType::loongarch64);
+
+ compiler.getTargetOpts().Triple = Tr.getTriple();
+ compiler.setTarget(clang::TargetInfo::CreateTargetInfo(
+ compiler.getDiagnostics(), compiler.getTargetOpts()));
+
+ EXPECT_EQ(compiler.getTarget().getCallingConvKind(true),
+ TargetInfo::CallingConvKind::CCK_Default);
}
TEST(ToolChainTest, UEFIDefaultDebugFormatTest) {
|
|
@llvm/pr-subscribers-clang Author: None (leecheechen) ChangesThis patch adds basic UEFI target support for loongarch64. It enable Clang to recognize and handle Full diff: https://github.com/llvm/llvm-project/pull/155598.diff 7 Files Affected:
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index e3f9760ac7ce3..ea854e42e4396 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -760,6 +760,9 @@ std::unique_ptr<TargetInfo> AllocateTarget(const llvm::Triple &Triple,
case llvm::Triple::OpenBSD:
return std::make_unique<OpenBSDTargetInfo<LoongArch64TargetInfo>>(Triple,
Opts);
+ case llvm::Triple::UEFI:
+ return std::make_unique<UEFITargetInfo<LoongArch64TargetInfo>>(Triple,
+ Opts);
default:
return std::make_unique<LoongArch64TargetInfo>(Triple, Opts);
}
diff --git a/clang/lib/Basic/Targets/LoongArch.h b/clang/lib/Basic/Targets/LoongArch.h
index 88dc433924d6c..ae0838a58dd63 100644
--- a/clang/lib/Basic/Targets/LoongArch.h
+++ b/clang/lib/Basic/Targets/LoongArch.h
@@ -13,6 +13,7 @@
#ifndef LLVM_CLANG_LIB_BASIC_TARGETS_LOONGARCH_H
#define LLVM_CLANG_LIB_BASIC_TARGETS_LOONGARCH_H
+#include "OSTargets.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/TargetOptions.h"
#include "llvm/Support/Compiler.h"
@@ -159,6 +160,8 @@ class LLVM_LIBRARY_VISIBILITY LoongArch64TargetInfo
IntMaxType = Int64Type = SignedLong;
HasUnalignedAccess = true;
resetDataLayout("e-m:e-p:64:64-i64:64-i128:128-n32:64-S128");
+ if (Triple.isUEFI())
+ resetDataLayout("e-m:w-p:64:64-i64:64-i128:128-n32:64-S128");
// TODO: select appropriate ABI.
setABI("lp64d");
}
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index d682ffc832c83..9faeb33ba10b6 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -698,8 +698,10 @@ static llvm::Triple computeTargetTriple(const Driver &D,
}
}
- // Currently the only architecture supported by *-uefi triples are x86_64.
- if (Target.isUEFI() && Target.getArch() != llvm::Triple::x86_64)
+ // Currently the only architectures supported by *-uefi triples are
+ // x86_64 and loongarch64.
+ if (Target.isUEFI() && Target.getArch() != llvm::Triple::x86_64 &&
+ Target.getArch() != llvm::Triple::loongarch64)
D.Diag(diag::err_target_unknown_triple) << Target.str();
// The `-maix[32|64]` flags are only valid for AIX targets.
diff --git a/clang/test/CodeGen/LoongArch/uefi-data-layout.c b/clang/test/CodeGen/LoongArch/uefi-data-layout.c
new file mode 100644
index 0000000000000..8c3e0b00d9d05
--- /dev/null
+++ b/clang/test/CodeGen/LoongArch/uefi-data-layout.c
@@ -0,0 +1,3 @@
+// RUN: %clang -target loongarch64-unknown-uefi -S -emit-llvm -o - %s | \
+// RUN: FileCheck --check-prefix=LA64_UEFI %s
+// LA64_UEFI: target datalayout = "e-m:w-p:64:64-i64:64-i128:128-n32:64-S128"
diff --git a/clang/test/Driver/uefi-constructed-args.c b/clang/test/Driver/uefi-constructed-args.c
index 49ede47a8953e..c9f3cbaf105d3 100644
--- a/clang/test/Driver/uefi-constructed-args.c
+++ b/clang/test/Driver/uefi-constructed-args.c
@@ -12,3 +12,18 @@
// CHECK-SAME: "-entry:EfiMain"
// CHECK-SAME: "-tsaware:no"
// CHECK-SAME: "-debug"
+
+// RUN: %clang -### --target=loongarch64-unknown-uefi -g -- %s 2>&1 \
+// RUN: | FileCheck -check-prefixes=LA64 %s
+// RUN: %clang_cl -### --target=loongarch64-unknown-uefi -g -- %s 2>&1 \
+// RUN: | FileCheck -check-prefixes=LA64 %s
+// LA64: "-cc1"
+// LA64-SAME: "-triple" "loongarch64-unknown-uefi"
+// LA64-SAME: "-mrelocation-model" "pic" "-pic-level" "2"
+// LA64-SAME: "-mframe-pointer=all"
+// LA64-SAME: "-fms-extensions"
+// LA64-NEXT: "-nologo"
+// LA64-SAME: "-subsystem:efi_application"
+// LA64-SAME: "-entry:EfiMain"
+// LA64-SAME: "-tsaware:no"
+// LA64-SAME: "-debug"
diff --git a/clang/test/Driver/unsupported-target-arch.c b/clang/test/Driver/unsupported-target-arch.c
index 426f646db50b0..2f2fa4f8244df 100644
--- a/clang/test/Driver/unsupported-target-arch.c
+++ b/clang/test/Driver/unsupported-target-arch.c
@@ -77,3 +77,9 @@
// RUN: not %clang_cl --target=x86-unknown-uefi -o %t.o %s 2> %t.err
// RUN: FileCheck --input-file=%t.err -check-prefixes=CHECK-x86 %s
// CHECK-x86: error: unknown target triple 'x86-unknown-uefi'{{$}}
+
+// RUN: not %clang --target=loongarch-unknown-uefi -o %t.o %s 2> %t.err
+// RUN: FileCheck --input-file=%t.err -check-prefixes=CHECK-la %s
+// RUN: not %clang_cl --target=loongarch-unknown-uefi -o %t.o %s 2> %t.err
+// RUN: FileCheck --input-file=%t.err -check-prefixes=CHECK-la %s
+// CHECK-la: error: unknown target triple 'loongarch-unknown-uefi'{{$}}
diff --git a/clang/unittests/Driver/ToolChainTest.cpp b/clang/unittests/Driver/ToolChainTest.cpp
index 4fa27297cfd87..c61a7d69d2dbc 100644
--- a/clang/unittests/Driver/ToolChainTest.cpp
+++ b/clang/unittests/Driver/ToolChainTest.cpp
@@ -594,6 +594,19 @@ TEST(ToolChainTest, UEFICallingConventionTest) {
EXPECT_EQ(compiler.getTarget().getCallingConvKind(true),
TargetInfo::CallingConvKind::CCK_MicrosoftWin64);
+
+ TrStr = "loongarch64-unknown-uefi";
+ Tr.setOS(llvm::Triple::OSType::UEFI);
+ Tr.setVendor(llvm::Triple::VendorType::UnknownVendor);
+ Tr.setEnvironment(llvm::Triple::EnvironmentType::UnknownEnvironment);
+ Tr.setArch(llvm::Triple::ArchType::loongarch64);
+
+ compiler.getTargetOpts().Triple = Tr.getTriple();
+ compiler.setTarget(clang::TargetInfo::CreateTargetInfo(
+ compiler.getDiagnostics(), compiler.getTargetOpts()));
+
+ EXPECT_EQ(compiler.getTarget().getCallingConvKind(true),
+ TargetInfo::CallingConvKind::CCK_Default);
}
TEST(ToolChainTest, UEFIDefaultDebugFormatTest) {
|
| // RUN: not %clang --target=loongarch-unknown-uefi -o %t.o %s 2> %t.err | ||
| // RUN: FileCheck --input-file=%t.err -check-prefixes=CHECK-la %s | ||
| // RUN: not %clang_cl --target=loongarch-unknown-uefi -o %t.o %s 2> %t.err | ||
| // RUN: FileCheck --input-file=%t.err -check-prefixes=CHECK-la %s | ||
| // CHECK-la: error: unknown target triple 'loongarch-unknown-uefi'{{$}} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's not need to add this invalid-arch test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done, thanks!
|
|
||
| TrStr = "loongarch64-unknown-uefi"; | ||
| Tr.setOS(llvm::Triple::OSType::UEFI); | ||
| Tr.setVendor(llvm::Triple::VendorType::UnknownVendor); | ||
| Tr.setEnvironment(llvm::Triple::EnvironmentType::UnknownEnvironment); | ||
| Tr.setArch(llvm::Triple::ArchType::loongarch64); | ||
|
|
||
| compiler.getTargetOpts().Triple = Tr.getTriple(); | ||
| compiler.setTarget(clang::TargetInfo::CreateTargetInfo( | ||
| compiler.getDiagnostics(), compiler.getTargetOpts())); | ||
|
|
||
| EXPECT_EQ(compiler.getTarget().getCallingConvKind(true), | ||
| TargetInfo::CallingConvKind::CCK_Default); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to add this test until you override the getCallingConvKind interface in Basic/Targets/X86.h.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done, thanks!
5bdf485 to
f2cc365
Compare
This patch adds basic UEFI target support for loongarch64, enabling Clang to recognize and handle the loongarch64-unknown-uefi target triple.
f2cc365 to
e5f0720
Compare
This patch adds basic UEFI target support for loongarch64, enabling Clang to recognize and handle the loongarch64-unknown-uefi target triple.
Depends on #154883